This application relates generally to data storage verification in a disc drive having logical sectors, and more particularly to a write authentication test designed to, while minimally affecting performance, automatically verify recently written logical sectors, and store resultant read metrics for future testing and diagnosing of the disc drive.
Disc drives are data storage devices that store digital data in magnetic form on a rotating storage medium called a disc. Modern disc drives comprise one or more rigid discs that are coated with a magnetizable medium and mounted on the hub of a spindle motor for rotation at a constant high speed. Each surface of a disc is divided into several thousand tracks that are tightly-packed concentric circles similar in layout to the annual growth rings of a tree. The tracks are typically numbered starting from zero at the track located outermost the disc and increasing for tracks located closer to the center of the disc. Each track is further broken down into sectors and servo bursts. A sector is normally the smallest individually addressable unit of information stored in a disc drive and typically holds 512 bytes of information plus a few additional bytes for internal drive control and error detection and correction. This organization of data allows for easy access to any part of the discs. A servo burst is a particular magnetic signature on a track which facilitates positioning of heads over tracks.
Generally, each of the multiple discs in a disc drive has associated with it two heads (one adjacent the top surface of the disc, and another adjacent the bottom) for reading and writing data to a sector. A typical disc drive has two or three discs. This usually means there are four or six beads in a disc drive carried by a set of actuator arms. Data is accessed by moving the heads from the inner to outer part of the disc (and vice-versa) driven by an actuator assembly. The heads that access sectors on discs are locked together on the actuator assembly. For this reason, all the heads move in and out together and are always physically located at the same track number (e.g., it is impossible to have one head at track 0 and another at track 500). Because all the heads move together, each of the tracks on all discs is known as a cylinder for reasons that these tracks form a cylinder since they are equal-sized circles stacked one on top of the other in space. So, for example, if a disc drive has four discs, it would normally have eight heads, and a cylinder number 680 would be made up of a set of eight tracks, one per disc surface, at track number 680. Thus, for most purposes, there is not much difference between tracks and cylinders since a cylinder is basically a set of all tracks whereat all the heads are currently located.
One of the heads must first be positioned over the correct location of a sector on the disc in order to access (i.e., read or write) the sector. This requires the heads to move to the correct track and then wait for the correct sector to pass under the appropriate head. Moving the heads to the correct track is measured by seek time. A head seek in a disc drive occurs on the order of milliseconds. At this speed, and due to the nature of the construction, head seeks cause spike-like soundwaves. These waves are what cause the familiar xe2x80x98clickingxe2x80x99 sound of hard disc drives. The particular loudness and duration of a hard disc drive seek click is characterized by factors such as a differential equation steering mechanism used by the servo system, and the magnitude of the distance of the head displacement from the start to end point of the seek.
Once a seek has finished and while the disc rotates to a correct sector, the servo mechanism continuously interprets servo burst information from the track to ensure the head remains positioned correctly. Essentially, servo bursts, also known as servo wedges, aid in steering the head over the track. The time elapsed while waiting for a correct sector to pass under the appropriate head is measured by latency.
Seek time and latency are two very important disc drive performance measurements. Seek time measures the amount of time required for the heads to move between tracks. Generally, the amount of time to switch between two tracks depends on the distance between the tracks; however, the relationship is not linear due to a certain amount of overhead involved in track switching. Latency, on the other hand, measures the time that the disc drive must wait for the correct sector to come around to where one of the heads is waiting for it. At the time the appropriate head arrives at and begins to follow the correct track, the actual sector for read or write may be located elsewhere on the disc spinning around at high speed. This causes a latency delay since the servo system must wait for the correct sector to arrive under the head.
A seek time delay and a latency delay are normally expressed in milliseconds. In a computing system, a millisecond is an enormous amount of time when the system memory speed is measured in nanoseconds. For example, a 200 MHz processor can theoretically execute 200,000 instructions in a millisecond. Thus, cutting the seek time and/or latency delays result in significant performance improvement in a computing system, because the computing system can execute a significant number of instructions instead of waiting for movement of the heads to a track or waiting for a correct sector to pass under one of the heads.
Particularly, storing data in a contiguous block of sectors on a track in a disc drive reduces latency. For example, latency is relatively a minor factor for reading or writing a large contiguous block of data on a track since the latency will only occur once while waiting to access the first sector of data. On the other hand, latency is an important performance-limiting factor for reading or writing noncontiguous multiple data blocks on a track.
As with any data storage and retrieval, data integrity is critical. Oftentimes, for various reasons such as defective media, improper head positioning, extraneous particles between the head and media, or marginally functioning components, disc drives may record or read data incorrectly to or from the disc. For reasons such as predicting imminent disc drive failure, disc drive testing, and evolutionary disc drive improvement, it is valuable to characterize a disc drive""s operating parameters; it is particularly useful to characterize unsuccessful reads and writes. To this end, the industry recognized Self Monitoring Analysis and Reporting Technology (SMART) feature was developed. SMART is essentially a self-contained disc drive monitoring system which measures, records, and analyzes various operating metrics of a disc drive. SMART has been used for such things as predicting failures and diagnosing failed disc drives.
As mentioned above, when a disc drive receives a read command from a host, it accesses the corresponding data from the disc, and before sending the data to the host, performs an error detection, and if necessary, error correction routine. This operation is necessary when data has either been incorrectly written to a disc, or incorrectly read from a disc, and is made possible through the use of error correction code data by which extra data is stored at the end of a sector and can be used in a mathematical formula to check and correct the data retrieved from a disc.
However, to date, no equivalent mechanism exists for checking and correcting data during a disc drive write. As a disc rotates under a head, the servo mechanism interprets servo burst information from the track on the media, and steers the head over the track. The user, or host data resides between servo bursts on a track, and therefore, while writing data to the disc, there is no on-the-fly assurance that the data was written in the correct location. Moreover, there is no assurance the head functioned correctly, there was no particle interference, nor that the media wasn""t defective and not properly magnetized. For the most part, the data is in fact written correctly and in the correct location on the disc. However, for various reasons as listed above, this is not always the case. Accordingly there is a need for a mechanism which allows a disc drive to check the integrity of data written to a disc, while minimizing performance impact and excessive seek noise, and store resultant read metrics for future testing and diagnosing of a disc drive. The mechanism can be incorporated as a part of the SMART feature of disc drives.
Against this backdrop embodiments of the present invention have been developed. Embodiments of the present invention essentially comprise a system to authenticate correctly written disc drive data while minimally affecting the performance and loudness of a disc drive, and characterize and store read command metrics for future testing and diagnostic operations. That is, it transparently performs self-authentication of data written to a disc drive""s disc, and stores information characterizing failed read commands for further reporting and analysis. Henceforth, an embodiment of the invention shall be referred to as Self-contained Write Authentication Test (SWAT).
There are basically two possible types of a successful read verification command which can be employed by SWAT. If a disc drive attempts to read a sector from the disc and interprets that the read data does not require error correction, or if the read data does require error correction and the error correction is completed successfully, the data can be considered valid. In this case, the host data is not actually confirmed to be the exact data that was originally written to the disc; rather, it indicates that the status of the data is considered satisfactory, and that the data is most likely correct. The probability that an error detection or error correction algorithm results in a successful status, but actually returns incorrect data is dictated by the nature of the error detection and correction scheme. As general practice in industry however, the probability of such an occurrence is negligible. The second type of a successful read verification is one in which the data read from the disc is actually compared to the data sent from the host sending the write command. In this case, an on-drive write buffer can retain write data until the read verification command has completed. This latter type of read verification requires more memory and computing bandwidth.
There is one preferred embodiment by which this can be achieved in a disc drive that is presently envisioned. However, other means will also become apparent to those skilled in the art upon reading the following description. Essentially, when a disc drive determines it has been inactive for a period of time, it will enter into a write authentication test mode. In this mode, the disc drive will automatically attempt to read back from the disc, a number, for example 40, of the most recently executed write commands. The disc drive is, in effect, verifying that the data was written to the disc correctly.
These and various other features as well as advantages that characterize the present invention will be apparent from a reading of the following detailed description and a review of the associated drawings.